
// Generated from Nasm.g4 by ANTLR 4.9.3

#pragma once


#include "antlr4-runtime.h"


namespace dspnasm {


class  NasmLexer : public antlr4::Lexer {
public:
  enum {
    A0 = 1, A1 = 2, A2 = 3, A3 = 4, A4 = 5, B0 = 6, B1 = 7, B2 = 8, B3 = 9, 
    B4 = 10, Decimal = 11, Octal = 12, Hex = 13, Binary = 14, WS = 15, Vstart = 16, 
    Global = 17, Externed = 18, Section = 19, Equ = 20, Times = 21, Bits = 22, 
    Db = 23, Dw = 24, Dd = 25, Dq = 26, ADD = 27, SUB = 28, MVK = 29, MV = 30, 
    NOP = 31, FuncUnit = 32, Id = 33, Char = 34, Add = 35, Sub = 36, Mul = 37, 
    Div = 38, Lshift = 39, Rshift = 40, Lbrace = 41, Rbrace = 42, Lparen = 43, 
    Rparen = 44, Equal = 45, Increment = 46, Decrement = 47, Or = 48, Colon = 49, 
    Comma = 50, Semicolon = 51, A = 52, B = 53, C = 54, D = 55, E = 56, 
    F = 57, G = 58, H = 59, I = 60, J = 61, K = 62, L = 63, M = 64, N = 65, 
    O = 66, P = 67, Q = 68, R = 69, S = 70, T = 71, U = 72, V = 73, W = 74, 
    X = 75, Y = 76, Z = 77
  };

  explicit NasmLexer(antlr4::CharStream *input);
  ~NasmLexer();

  virtual std::string getGrammarFileName() const override;
  virtual const std::vector<std::string>& getRuleNames() const override;

  virtual const std::vector<std::string>& getChannelNames() const override;
  virtual const std::vector<std::string>& getModeNames() const override;
  virtual const std::vector<std::string>& getTokenNames() const override; // deprecated, use vocabulary instead
  virtual antlr4::dfa::Vocabulary& getVocabulary() const override;

  virtual const std::vector<uint16_t> getSerializedATN() const override;
  virtual const antlr4::atn::ATN& getATN() const override;

private:
  static std::vector<antlr4::dfa::DFA> _decisionToDFA;
  static antlr4::atn::PredictionContextCache _sharedContextCache;
  static std::vector<std::string> _ruleNames;
  static std::vector<std::string> _tokenNames;
  static std::vector<std::string> _channelNames;
  static std::vector<std::string> _modeNames;

  static std::vector<std::string> _literalNames;
  static std::vector<std::string> _symbolicNames;
  static antlr4::dfa::Vocabulary _vocabulary;
  static antlr4::atn::ATN _atn;
  static std::vector<uint16_t> _serializedATN;


  // Individual action functions triggered by action() above.

  // Individual semantic predicate functions triggered by sempred() above.

  struct Initializer {
    Initializer();
  };
  static Initializer _init;
};

}  // namespace dspnasm
